using System.Collections.Generic;
using Admin.NET.Application.LAKALA.Dto.Response;
using Admin.NET.Core;
using SqlSugar;

namespace Admin.NET.Application.Entity.Business;

[SugarTable("UserMerchant", "商户")]
[SysTable]
public class UserMerchant : EntityTenant
{
	/// <summary>
	/// 拉卡拉内部id
	/// </summary>
	public string? MerInnerNo { get; set; }

	/// <summary>
	/// 拉卡拉银联商户号
	/// </summary>
	public string? MerCupNo { get; set; }

	/// <summary>
	/// 0审核中  1审核通过 2审核不通过
	/// </summary>
	public int State { get; set; }

	/// <summary>
	/// 用户id
	/// </summary>
	public long UserId { get; set; }

	/// <summary>
	/// 接口版本号	
	/// </summary>
	public string? Version { get; set; }

	/// <summary>
	/// 进件POS类型 —按接入系统做控制
	/// </summary>
	public string? PosType { get; set; }

	/// <summary>
	/// 机构代码 （合作方在拉卡拉的标识，请联系业务员） 测试环境：1
	/// </summary>
	public string? OrgCode { get; set; }

	/// <summary>
	/// 开放平台商户进件注册名称 长度不小于4个汉字；营业执照商户可填营业执照名称（执照名称超过20个字的，注册名称可不与执照名称一致），小微商户入网不得含有“有限公司”。【8~40字符，不可为纯数字】
	/// </summary>
	public string? MerRegName { get; set; }

	/// <summary>
	/// 开放平台商户进件经营名称 为空时，同商户注册名称，4-80个字符 【4~80字符，不可为纯数字】
	/// </summary>
	public string? MerBizName { get; set; }

	/// <summary>
	/// 商户地区代码	
	/// </summary>
	public string? MerRegDistCode { get; set; }

	/// <summary>
	/// 商户详细地址	去除省，市，区后的详细地址，6-200字符
	/// </summary>
	public string? MerRegAddr { get; set; }

	/// <summary>
	/// 商户MCC编号	银联商户类别代码，参见【MCC对照表】
	/// </summary>
	public string? MccCode { get; set; }

	/// <summary>
	/// 营业执照名称		
	/// </summary>
	public string? MerBlisName { get; set; }

	/// <summary>
	/// 营业执照号		
	/// </summary>
	public string? MerBlis { get; set; }

	/// <summary>
	/// 	营业执照开始日期	格式（yyyy-MM-dd）有营业执照时必传，否则微信实名认证会失败
	/// </summary>
	public string? MerBlisStDt { get; set; }

	/// <summary>
	/// 	营业执照有效期	格式（yyyy-MM-dd）有营业执照时必传，否则微信实名认证会失败
	/// </summary>
	public string? MerBlisExpDt { get; set; }

	/// <summary>
	/// 	商户经营内容	
	/// </summary>
	public string? MerBusiContent { get; set; }

	/// <summary>
	/// 商户法人姓名	
	/// </summary>
	public string? LarName { get; set; }

	/// <summary>
	/// 法人证件类型	
	/// </summary>
	public string? LarIdType { get; set; }

	/// <summary>
	/// 法人身份证号码	
	/// </summary>
	public string? LarIdcard { get; set; }

	/// <summary>
	/// 法人身份证开始日期 yyyy-MM-dd	
	/// </summary>
	public string? LarIdcardStDt { get; set; }

	/// <summary>
	/// 法人身份证有效期 yyyy-MM-dd	
	/// </summary>
	public string? LarIdcardExpDt { get; set; }

	/// <summary>
	/// 商户联系人手机号码	
	/// </summary>
	public string? MerContactMobile { get; set; }

	/// <summary>
	/// 商户联系人	
	/// </summary>
	public string? MerContactName { get; set; }

	/// <summary>
	/// 	结算周期	 默认T+1
	/// </summary>
	public string? SettlePeriod { get; set; }

	/// <summary>
	/// 结算账户开户行号	
	/// </summary>
	public string? OpenningBankCode { get; set; }

	/// <summary>
	/// 结算账户开户行名称	
	/// </summary>
	public string? OpenningBankName { get; set; }

	/// <summary>
	/// 结算账户清算行号	
	/// </summary>
	public string? ClearingBankCode { get; set; }

	/// <summary>
	/// 结算账户账号	
	/// </summary>
	public string? AcctNo { get; set; }

	/// <summary>
	/// 结算账户名称	
	/// </summary>
	public string? AcctName { get; set; }

	/// <summary>
	/// 结算账户性质	
	/// </summary>
	public string? AcctTypeCode { get; set; }

	/// <summary>
	/// 结算周期	
	/// </summary>
	public string? AcctIdcard { get; set; }

	/// <summary>
	/// 终端设备序列号		
	/// </summary>
	public string? DevSerialNo { get; set; }

	/// <summary>
	/// 设备型号	
	/// </summary>
	public string? DevTypeName { get; set; }

	/// <summary>
	/// 终端版本号	
	/// </summary>
	public string? TermVer { get; set; }

	/// <summary>
	/// 销售人员	
	/// </summary>
	public string? SalesStaff { get; set; }

	/// <summary>
	/// 费率信息集合	
	/// </summary>
	[SugarColumn(IsJson = true, ColumnDataType = "jsonb", IsNullable = true)]
	public List<FeeData> FeeData { get; set; }

	/// <summary>
	/// 附件信息集合	
	/// </summary>
	[SugarColumn(IsJson = true, ColumnDataType = "jsonb", IsNullable = true)]
	public List<FileData> FileData { get; set; }

	/// <summary>
	/// 进件id
	/// </summary>
	public string? ContractId { get; set; }

	public string? TermId { get; set; }
}
